很多人現(xiàn)在在家工作,擔(dān)心網(wǎng)速和網(wǎng)站性能。速度就是互聯(lián)網(wǎng)世界的一切。與現(xiàn)實世界相比,這里的情況有些不同。客戶會在幾分之一秒內(nèi)不知所措或掉線。建一個網(wǎng)站可能容易,但保持領(lǐng)先卻很難,有資格做很多艱苦的工作。緩存是一種臨時存儲區(qū)域。例如,您通過查看網(wǎng)頁自動請求的文件保存在硬盤上的緩存子目錄中,位于您的瀏覽器目錄下。當(dāng)您恢復(fù)到最近查看的頁面時,瀏覽器可以從緩存而不是原始服務(wù)器中獲取這些文件,從而節(jié)省您的時間并減輕網(wǎng)絡(luò)額外流量的負擔(dān)。
緩存如何提高網(wǎng)站的性能?
貯存
緩存中的數(shù)據(jù)通常收集在諸如 RAM(隨機存取存儲器)之類的快速訪問硬件中,也可以與軟件組件相關(guān)聯(lián)地進行管理。緩存的主要目標(biāo)是通過減少訪問底層較慢存儲層的需求來提高數(shù)據(jù)檢索性能。
緩存概述
由于 RAM 和內(nèi)存引擎支持的高請求率或 IOPS(每秒輸入/輸出操作),緩存會影響更新的數(shù)據(jù)檢索性能并大規(guī)模降低費用。為了支持與傳統(tǒng)數(shù)據(jù)庫和基于磁盤的硬件相同的規(guī)模,需要額外的資源。這些額外的資源增加了成本,但仍然無法提供內(nèi)存緩存所提供的低延遲性能。
應(yīng)用
緩存可以在多個技術(shù)層中實施和利用,包括操作系統(tǒng)、包括內(nèi)容交付網(wǎng)絡(luò) (CDN)和DNS在內(nèi)的網(wǎng)絡(luò)層、Web 應(yīng)用程序和數(shù)據(jù)庫。您可以利用緩存來顯著減少延遲并提高許多讀取繁重的應(yīng)用程序工作負載的 IOPS,例如問答門戶、游戲、媒體共享和社交網(wǎng)絡(luò)。緩存數(shù)據(jù)可以合并數(shù)據(jù)庫查詢的結(jié)果、算術(shù)密集型計算、API 請求/響應(yīng)以及 HTML、JavaScript 和圖像文件等 Web 工件。塑造數(shù)據(jù)集的計算密集型工作負載,例如推薦引擎和高性能計算模擬,也由作為緩存的內(nèi)存數(shù)據(jù)層提供服務(wù)。在這些應(yīng)用程序中,必須跨可以跨越數(shù)百個節(jié)點的機器集群實時獲取非常大的數(shù)據(jù)集。由于底層硬件的速度,在基于磁盤的存儲中操作這些數(shù)據(jù)是這些目的的重要瓶頸。
設(shè)計模式
在分布式計算環(huán)境中,專用的緩存層允許系統(tǒng)和應(yīng)用程序在緩存中自主運行,具有自己的生命周期,而不會影響緩存。緩存充當(dāng)中央層,可以從具有自己的生命周期和架構(gòu)拓撲的不同系統(tǒng)中獲取。這在應(yīng)用程序節(jié)點可以動態(tài)擴展和擴展的系統(tǒng)中尤為重要。如果緩存與使用它的應(yīng)用程序或系統(tǒng)駐留在同一節(jié)點上,則縮放可能會改變緩存的垂直度。此外,當(dāng)使用本地緩存時,它們只會使使用數(shù)據(jù)的本地應(yīng)用程序受益。在分布式緩存環(huán)境中,數(shù)據(jù)可以跨越許多緩存服務(wù)器并存儲在一個中心位置,以便為該數(shù)據(jù)的所有客戶提供優(yōu)勢。
緩存最佳實踐
執(zhí)行緩存層時,必須了解緩存數(shù)據(jù)的有效性。強大的緩存會導(dǎo)致高命中率,這意味著數(shù)據(jù)在檢索時就存在。當(dāng)緩存中不存在獲取的數(shù)據(jù)時,會發(fā)生緩存未命中。可以實施諸如 TTL(生存時間)之類的控件來相應(yīng)地終止數(shù)據(jù)。
緩存怎么提高網(wǎng)站的性能?
內(nèi)存引擎,例如 Redis。在某些情況下,內(nèi)存層可以用作獨立的數(shù)據(jù)存儲層,與緩存來自主要位置的數(shù)據(jù)相反。在這種情況下,對駐留在 In - 內(nèi)存引擎來解決這是否合適。可以采用不同 In-Memory 引擎的設(shè)計程序和特性來滿足大多數(shù) RTO 和 RPO 聲明。
我們都知道,有效的緩存設(shè)置是網(wǎng)站盡可能快地向訪客提供內(nèi)容、提高前端和后端加載時間以及減輕網(wǎng)站源服務(wù)器壓力的首要任務(wù)。
通過瀏覽器緩存,當(dāng)客人第一次訪問網(wǎng)頁時,他們的瀏覽器會在一段時間內(nèi)收集徽標(biāo)、CSS 文件和圖像等項目。下次同一訪問者訪問該網(wǎng)頁時,他們已經(jīng)擁有啟動該頁面所需的大部分項目;這意味著不需要向網(wǎng)站源服務(wù)器發(fā)送盡可能多的請求,從而加快頁面加載時間。瀏覽器緩存對于重復(fù)訪問同一站點的訪問者很有幫助。
不同的是,服務(wù)器端緩存設(shè)置需要來自同一個緩存的多個訪問者,而不是期望他們都從源服務(wù)器發(fā)出請求,從而有效地減少源服務(wù)器上的負載,因此即使是網(wǎng)頁的第一次查看也很快。服務(wù)器端緩存是一種反向代理,因為它們根據(jù)網(wǎng)站服務(wù)器進行操作,并在訪問者到達網(wǎng)站來源之前攔截和服務(wù)訪問者。
當(dāng)執(zhí)行服務(wù)器端緩存時,緩存過期后網(wǎng)頁的第一個訪問者將向源服務(wù)器請求內(nèi)容,然后將其提供給緩存和訪問者。成功的訪問者將直接獲得緩存的內(nèi)容,緩存的網(wǎng)頁內(nèi)容越多,頁面加載時間就越快。
為了確保為您的用戶提供最佳體驗,除了緩存之外,還專注于緊湊編碼、服務(wù)器端調(diào)整和優(yōu)化、圖像質(zhì)量和壓縮以及采用更新的技術(shù)。網(wǎng)站速度是一個面臨的問題,但先進的技術(shù)不斷發(fā)展。